<?php
namespace SisGG\FinalBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraint as Assert;
use SisGG\FinalBundle\Entity\Pedido;
/**
 * @ORM\Entity
 */
class Cliente extends Persona implements \Serializable
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @ORM\OneToMany(targetEntity="PedidoDelivery",mappedBy="cliente")
     */
    private $pedidosDelivery;
    /**
     * @ORM\OneToMany(targetEntity="PedidoMostrador",mappedBy="cliente")
     */
    private $pedidosMostrador;
    
    /**
     * @ORM\ManyToOne(targetEntity="Empresa",inversedBy="clientes")
     */
    private $empresa;
    
    /**
     * @ORM\OneToOne(targetEntity="Cuit",cascade={"persist"})
     * @ORM\JoinColumn(name="cuit_id", referencedColumnName="id")
     */
    private $cuit;
    /**
     * @return string
     */
    public function serialize()
    {
      return serialize($this->id);
    }

    /**
     * @param string $data
     */
    public function unserialize($data)
    {
      $this->id = unserialize($data);
    }
    /**
     * @return string
     */
    public function __toString() {
        return $this->getDni().' - '.$this->getApellido().','.$this->getNombre();
    }
    
    /**
     * Constructor
     */
    public function __construct()
    {
        $this->pedidos = new \Doctrine\Common\Collections\ArrayCollection();
    }
    
    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Add pedidos
     *
     * @param SisGG\FinalBundle\Entity\Pedido $pedidos
     * @return Cliente
     */
    public function addPedido(\SisGG\FinalBundle\Entity\Pedido $pedidos)
    {
        $this->pedidos[] = $pedidos;
    
        return $this;
    }

    /**
     * Remove pedidos
     *
     * @param SisGG\FinalBundle\Entity\Pedido $pedidos
     */
    public function removePedido(\SisGG\FinalBundle\Entity\Pedido $pedidos)
    {
        $this->pedidos->removeElement($pedidos);
    }

    /**
     * Get pedidos
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getPedidos()
    {
        return $this->pedidos;
    }

    /**
     * Set pedidoDelivery
     *
     * @param SisGG\FinalBundle\Entity\PedidoDelivery $pedidoDelivery
     * @return Cliente
     */
    public function setPedidoDelivery(\SisGG\FinalBundle\Entity\PedidoDelivery $pedidoDelivery = null)
    {
        $this->pedidoDelivery = $pedidoDelivery;
    
        return $this;
    }

    /**
     * Get pedidoDelivery
     *
     * @return SisGG\FinalBundle\Entity\PedidoDelivery 
     */
    public function getPedidoDelivery()
    {
        return $this->pedidoDelivery;
    }

    /**
     * Set pedidoMostrador
     *
     * @param SisGG\FinalBundle\Entity\PedidoMostrador $pedidoMostrador
     * @return Cliente
     */
    public function setPedidoMostrador(\SisGG\FinalBundle\Entity\PedidoMostrador $pedidoMostrador = null)
    {
        $this->pedidoMostrador = $pedidoMostrador;
    
        return $this;
    }

    /**
     * Get pedidoMostrador
     *
     * @return SisGG\FinalBundle\Entity\PedidoMostrador 
     */
    public function getPedidoMostrador()
    {
        return $this->pedidoMostrador;
    }

    /**
     * Set pedidosDelivery
     *
     * @param SisGG\FinalBundle\Entity\PedidoDelivery $pedidosDelivery
     * @return Cliente
     */
    public function setPedidosDelivery(\SisGG\FinalBundle\Entity\PedidoDelivery $pedidosDelivery = null)
    {
        $this->pedidosDelivery = $pedidosDelivery;
    
        return $this;
    }

    /**
     * Get pedidosDelivery
     *
     * @return SisGG\FinalBundle\Entity\PedidoDelivery 
     */
    public function getPedidosDelivery()
    {
        return $this->pedidosDelivery;
    }

    /**
     * Set pedidosMostrador
     *
     * @param SisGG\FinalBundle\Entity\PedidoMostrador $pedidosMostrador
     * @return Cliente
     */
    public function setPedidosMostrador(\SisGG\FinalBundle\Entity\PedidoMostrador $pedidosMostrador = null)
    {
        $this->pedidosMostrador = $pedidosMostrador;
    
        return $this;
    }

    /**
     * Get pedidosMostrador
     *
     * @return SisGG\FinalBundle\Entity\PedidoMostrador 
     */
    public function getPedidosMostrador()
    {
        return $this->pedidosMostrador;
    }

    /**
     * Add pedidosDelivery
     *
     * @param SisGG\FinalBundle\Entity\PedidoDelivery $pedidosDelivery
     * @return Cliente
     */
    public function addPedidosDelivery(\SisGG\FinalBundle\Entity\PedidoDelivery $pedidosDelivery)
    {
        $this->pedidosDelivery[] = $pedidosDelivery;
    
        return $this;
    }

    /**
     * Remove pedidosDelivery
     *
     * @param SisGG\FinalBundle\Entity\PedidoDelivery $pedidosDelivery
     */
    public function removePedidosDelivery(\SisGG\FinalBundle\Entity\PedidoDelivery $pedidosDelivery)
    {
        $this->pedidosDelivery->removeElement($pedidosDelivery);
    }

    /**
     * Add pedidosMostrador
     *
     * @param SisGG\FinalBundle\Entity\PedidoMostrador $pedidosMostrador
     * @return Cliente
     */
    public function addPedidosMostrador(\SisGG\FinalBundle\Entity\PedidoMostrador $pedidosMostrador)
    {
        $this->pedidosMostrador[] = $pedidosMostrador;
    
        return $this;
    }

    /**
     * Remove pedidosMostrador
     *
     * @param SisGG\FinalBundle\Entity\PedidoMostrador $pedidosMostrador
     */
    public function removePedidosMostrador(\SisGG\FinalBundle\Entity\PedidoMostrador $pedidosMostrador)
    {
        $this->pedidosMostrador->removeElement($pedidosMostrador);
    }

    /**
     * Set empresa
     *
     * @param SisGG\FinalBundle\Entity\Empresa $empresa
     * @return Cliente
     */
    public function setEmpresa(\SisGG\FinalBundle\Entity\Empresa $empresa = null)
    {
        $this->empresa = $empresa;
    
        return $this;
    }

    /**
     * Get empresa
     *
     * @return SisGG\FinalBundle\Entity\Empresa 
     */
    public function getEmpresa()
    {
        return $this->empresa;
    }

    /**
     * Set cuit
     *
     * @param SisGG\FinalBundle\Entity\Cuit $cuit
     * @return Cliente
     */
    public function setCuit(\SisGG\FinalBundle\Entity\Cuit $cuit = null)
    {
        $this->cuit = $cuit;
    
        return $this;
    }

    /**
     * Get cuit
     *
     * @return SisGG\FinalBundle\Entity\Cuit 
     */
    public function getCuit()
    {
        return $this->cuit;
    }
}